Querying by concept classifications in an electronic data record system

ABSTRACT

Embodiments of the present invention enable processing of concept-based query requests submitted to a query service within a healthcare transaction framework. In embodiments, a terminology service within the healthcare transaction framework manages terminology content (concepts represented by a set of terminologies). In embodiments, search criteria from a data access query request are submitted to the terminology service to extract a set of concepts from the terminology content that are associated with the search criteria. In embodiments, equivalence search criteria include a seed concept, and the terminology service returns a set of equivalent concepts comprising the seed concept. In embodiments, classification search criteria include a classification identifier, and the terminology service returns a set of concepts associated with the classification identifier. In embodiments, the query service generates and submits a data access query comprising predicates associated with the returned set of concepts.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is related to the following concurrently filed,co-pending, and commonly assigned application: U.S. application Ser. No.12/485,888, filed Jun. 16, 2009, entitled “Querying By SemanticallyEquivalent Concepts in an Electronic Data Record System,” listingFlorian Alexander Mayr, Anand Shroff, Hamish Daniel Currie, GregoryKuhnen, and Matthew Thomas Moores as inventors. The above-referencedapplication is incorporated herein by reference in its entirety.

BACKGROUND

A. Technical Field

The present invention pertains generally to data processing, and relatesmore particularly to querying in an electronic data record system.

B. Background of the Invention

Healthcare is one industry for which viewing and sharing of informationare vitally important. For instance, in order to provide effectivehealthcare to a patient, it is essential to be able to access a trustedpersistent record of that patient's medical history. However, theunification of information stored within disparate data repositoriespresents a difficult problem. Until recently, it has been almostimpossible for different healthcare organizations and service providersto be able to view a trusted common electronic record of a person'smedical history discordant terminologies with poorly developedmechanisms for sharing the data between disparate systems. This had ledto access and interoperability obstacles that prevent the presentationof an integrated view of a single patient's data.

The Health Level 7 Version 3 (HL7 v3) international standard has beendeveloped to remove some of the interoperability obstacles by providinga platform for data consolidation. HL7 v3 includes a ReferenceInformation Model (RIM) that enforces consistency of stored and sharedinformation across diverse domains within healthcare. HL7 v3 and RIMfacilitate the collection of patient and healthcare data from disparatesystems, as well as the storage of that data in a central repositorywithout losing its meaning so that it can be shared electronically via asecure connection across different systems in diverse organizations. TheHL7 v3 standard also supports a concept-based semantics terminologymodel to support multiple representations of healthcare concepts in thevarious terminologies used within the industry. Additionally, HL7 v3specifies methods for binding terminologies to RIM structural conceptsso that a standard common semantics model for data describing healthcareconcepts may be developed.

One approach to removing some of the data access obstacles is to providea healthcare information exchange platform that combines astandards-based central data repository (such as an HL7 v3 compliantcentral data repository) with an integrated set of services for managingand accessing the data in the central repository. The healthcareinformation exchange platform typically includes a query service thatprovides programmatic interfaces for accessing the data stored in thedata repository. To enable efficient querying of the data, it would beuseful to develop a robust searching mechanism that can leverageconcept-based semantics, such as the semantics model specified by HL7v3.

SUMMARY OF THE INVENTION

Embodiments of the present invention enable processing of concept-basedquery requests submitted to a query service within a healthcaretransaction framework. In embodiments, a terminology service within thehealthcare transaction framework manages terminology content (conceptsrepresented by a set of terminologies). In embodiments, search criteriafrom a data access query request are submitted to the terminologyservice to extract a set of concepts from the terminology content thatare associated with the search criteria. In embodiments, equivalencesearch criteria include a seed concept, and the terminology servicereturns a set of equivalent concepts comprising the seed concept. Inembodiments, classification search criteria include a classificationidentifier, and the terminology service returns a set of conceptsassociated with the classification identifier. In embodiments, the queryservice generates and submits a data access query comprising predicatesassociated with the returned set of concepts.

In embodiments, generating a query to retrieve a set of stored datarecords from an electronic data record system may comprise receiving aquery request comprising a set of search criteria comprising a seedconcept; generating an equivalence concept query based on at least asubset of the search criteria that includes the seed concept; receivinga set of concepts that are semantically equivalent to the seed conceptin response to submitting the equivalence concept query to a terminologyservice that manages a repository of terminology content; and generatingthe query comprising predicates corresponding to the seed concept andthe set of concepts that are semantically equivalent to the seedconcept.

In embodiments, the terminology content comprises concepts that areassociated with at least one terminology code system and, inembodiments, the seed concept has a coded data type. In embodiments, thesubset of search criteria comprises an equivalence definition type and,in embodiments, the equivalence definition type is semantic equivalenceor mapping equivalence. In embodiments, the subset of search criteriacomprises an indication of an equivalence definition domain boundaryand, in embodiments, the equivalence definition domain boundary isindicated to be within a single code system associated with aterminology or is indicated to span across a plurality of code systemsassociated with a plurality of terminologies. In embodiments, theequivalence definition domain boundary is indicated to be within a usagecontext.

In embodiments, a system to generate a database query to retrieve a setof stored data records from an electronic data record system maycomprise a concept query system, coupled to receive a concept queryrequest comprising a set of search criteria that comprises a seedconcept, that generates a concept query result in response to submittingan equivalence concept query to a terminology service that manages arepository of terminology content comprising mappings between the storedconcepts; and a database query generator, coupled to receive the conceptquery result comprising the seed concept and a retrieved set of conceptsthat are semantically equivalent to the seed concept, that generates thedatabase query comprising predicates associated with the seed conceptand the retrieved set of concepts that are semantically equivalent tothe seed concept.

In embodiments, the system further comprises a database query processor,coupled to receive the database query, that retrieves the set of storeddata records in response to submitting the database query to theelectronic data record system.

In embodiments, the concept query system may comprise a concept querygenerator, coupled to receive the set of search criteria that comprisesthe seed concept, that generates the equivalence concept querycomprising the seed concept; and a concept query results generator,coupled to receive the equivalence concept query, that generates theconcept query result in response to submitting the equivalence conceptquery to the terminology service.

In embodiments, a method for generating a set of semantically equivalentconcepts may comprise receiving a set of search criteria comprising aseed concept; retrieving a set of stored concepts that are semanticallyequivalent to the seed concept from a terminology content datarepository; and generating the set of semantically equivalent conceptscomprising the seed concept and the retrieved set of semanticallyequivalent concepts.

In embodiments, the set of semantically equivalent concepts haveinter-version semantic equivalence. In embodiments, the set ofsemantically equivalent concepts are associated with a plurality ofterminology codes and have inter-terminology mapping equivalence.

In embodiments, generating a query to retrieve a set of stored datarecords from an electronic data record system may comprise receiving aquery request comprising a set of search criteria comprising aclassification identifier; generating a classification concept querybased on at least a subset of the search criteria that includes theclassification identifier; receiving a set of stored concepts that areassociated with the classification identifier in response to submittingthe classification concept query to a terminology service that manages arepository of terminology content comprising stored concept containershaving corresponding classification identifiers; and generating thequery comprising predicates corresponding to the set of stored concepts.

In embodiments, the set of stored concepts associated with theclassification identifier have an IS-A relationship with a conceptcontainer associated with the classification identifier. In embodiments,a classification hierarchy comprises a first concept container and a setof concept containers having an IS-A relationship to the first conceptcontainer.

In embodiments, the terminology content comprises stored concepts thatare associated with at least one terminology and, in embodiments, thesubset of search criteria comprises at least one attribute having acoded data type. In embodiments, a concept container is associated witha set of attributes described in part by at least one terminology code,and a concept within the set of stored concepts is identified based inpart on a terminology code.

In embodiments, a system to generate a database query to retrieve a setof stored data records from an electronic data record system maycomprise a concept query system, coupled to receive a concept queryrequest comprising a set of search criteria that comprises aclassification identifier, that generates a concept query result inresponse to submitting a classification concept query to a terminologyservice that manages a repository of terminology content comprisingstored concept containers having corresponding classificationidentifiers; and a database query generator, coupled to receive theconcept query result, that generates the database query comprisingpredicates associated with the retrieved set of stored concepts.

In embodiments, the system further comprises a database query processor,coupled to receive the database query, that retrieves the set of storeddata records in response to submitting the database query to theelectronic data record system. In embodiments, the system furthercomprises a database query service API that receives the concept queryrequest and returns a database query result comprising the retrieved setof stored data records.

In embodiments, the concept query system may comprise a concept querygenerator, coupled to receive the set of search criteria that comprisesthe classification identifier, that generates the classification conceptquery comprising the classification identifier; and a concept queryresults generator, coupled to receive the classification concept query,that generates the concept query result in response to submitting theclassification concept query to the terminology service.

In embodiments, a method for generating a set of stored concepts thatare associated with a classification may comprise receiving a set ofsearch criteria comprising a classification identifier; identifying aclassification concept container that is associated with theclassification identifier (the classification concept container beingstored within a terminology content data repository); and generating theset of stored concepts by retrieving, from the terminology content datarepository, concepts that have an IS-A relationship to the storedclassification concept container.

In embodiments, a classification hierarchy comprises a first conceptcontainer and a set of concept containers having an IS-A relationship tothe first concept container, and the classification identifier isassociated with one of the stored classification concept containerswithin the classification hierarchy. In embodiments, containment of astored concept within any one of the classification concept containerswithin the classification hierarchy may be determined in response toreceiving the set of search criteria.

Some features and advantages of the invention have been generallydescribed in this summary section; however, additional features,advantages, and embodiments are presented herein or will be apparent toone of ordinary skill in the art in view of the drawings, specification,and claims hereof. Accordingly, it should be understood that the scopeof the invention shall not be limited by the particular embodimentsdisclosed in this summary section.

BRIEF DESCRIPTION OF THE DRAWINGS

Reference will be made to embodiments of the invention, examples ofwhich may be illustrated in the accompanying figures. These figures areintended to be illustrative, not limiting. Although the invention isgenerally described in the context of these embodiments, it should beunderstood that it is not intended to limit the scope of the inventionto these particular embodiments.

FIG. 1 is an illustration of the five abstract structural concepts(classes) comprising the HL7 v3 RIM.

FIG. 2 is an illustration of an exemplary “collection” RIM datastructure.

FIG. 3 depicts an exemplary healthcare transaction framework accordingto various embodiments of the invention.

FIG. 4 depicts an exemplary RIM query service according to variousembodiments of the invention.

FIG. 5 depicts a RIM query service comprising a concept query systemaccording to various embodiments of the invention.

FIG. 6 illustrates an exemplary intra-version equivalence definitionaccording to various embodiments of the invention.

FIG. 7 illustrates an exemplary inter-version equivalence definitionaccording to various embodiments of the invention.

FIG. 8 illustrates an exemplary inter-terminology equivalence definitionaccording to various embodiments of the invention.

FIG. 9 depicts a block diagram of a concept query system according tovarious embodiments of the invention.

FIG. 10 depicts a method for handling an equivalence concept queryrequest according to various embodiments of the invention.

FIG. 11 depicts a method for handling a classification concept queryrequest according to various embodiments of the invention.

FIG. 12 depicts a block diagram of a computing system according tovarious embodiments of the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

In the following description, for purposes of explanation, specificdetails are set forth in order to provide an understanding of theinvention. It will be apparent, however, to one skilled in the art thatthe invention can be practiced without these details. Furthermore, oneskilled in the art will recognize that embodiments of the presentinvention, described below, may be implemented in a variety of ways,including software, hardware, or firmware, or combinations thereof.Accordingly, the figures described herein are illustrative of specificembodiments of the invention and are meant to avoid obscuring theinvention.

Components, or modules, shown in block diagrams are illustrative ofexemplary embodiments of the invention and are meant to avoid obscuringthe invention. It shall also be understood that throughout thisdiscussion that components may be described as separate functionalunits, which may comprise sub-units, but those skilled in the art willrecognize that various components, or portions thereof, may be dividedinto separate components or may be integrated together, includingintegrated within a single system or component.

Furthermore, connections between components within the figures are notintended to be limited to direct connections. Rather, data between thesecomponents may be modified, re-formatted, or otherwise changed byintermediary components. Also, additional or fewer connections may beused. It shall also be noted that the terms “coupled” or“communicatively coupled” shall be understood to include directconnections, indirect connections through one or more intermediarydevices, and wireless connections.

Reference in the specification to “one embodiment,” “preferredembodiment,” “an embodiment,” or “embodiments” means that a particularfeature, structure, characteristic, or function described in connectionwith the embodiment is included in at least one embodiment of theinvention and may be in more than one embodiment. The appearances of thephrases “in one embodiment,” “in an embodiment,” or “in embodiments” invarious places in the specification are not necessarily all referring tothe same embodiment or embodiments.

The use of certain terms in various places in the specification is forillustration and should not be construed as limiting. Usage of the term“service” is not limited to describing a single function; usage of theterm also may refer to a grouping of related functions or functionality.Similarly, usage of the term “resource” is not limited to describing asingle resource; the term also may be used to refer to a set ofresources that may either be distributed or aggregated within acomputing environment.

A. Overview

One specific application of the present invention is its use inembodiments of a healthcare electronic data record computing system.These embodiments will be described for illustrative purposes and notfor limitation. One skilled in the art will recognize the generalapplicability of the present invention to other data records.

1. The HL7 v3 Standard

The Health Level 7 Version 3 (HL7 v3) international standard allowsinformation systems to share health information unambiguously byenabling semantic interoperability of data. Semantic interoperability ofdata refers to sharing meaning of data rather than just the structure ofdata. The HL7 v3 standard is comprised of four primary components: acommon information model; a data type specification; a methodology forbinding to concept-based terminologies; and a messaging model.

The HL7 v3 common information model is the Reference Information Model(RIM). The RIM provides a high-level backbone that defines the semanticsof a set of common clinical, administrative, and financial datastructures. FIG. 1 is an illustration of the five core abstractstructural concepts (backbone classes) comprising the HL7 v3 RIM 100along with exemplary implementations of each abstract class: Entity 110,representing things in the world; Role 120, representing capability,capacity, or competency (usually time-based); Participation 130,representing Role in the context of an Act; Act 140, representingclinical, administrative, or financial definitions, plans, andoccurrences; and Act Relationship 150, representing the semantics oflinks between Acts.

RIM backbone classes may be associated with other types of RIM backboneclasses to form data structures that represent higher level healthcareconcepts. As depicted in FIG. 1, an Entity 110 may be associated withzero-to-many Roles 120; a Role 120 may be associated with zero-to-manyParticipations 130; one-or-many Participations 130 may be associatedwith one Act 140; and one Act 140 may be associated with zero-to-many ofeach type of Act Relationship 150.

RIM backbone classes may have any number of subclasses, each of which isdefined by a set of additional associated attributes that specify itssemantics. FIG. 2 depicts an exemplary “collection” RIM data structurerepresenting a diagnosis of pneumonia (observation Act 205) related tothree other observation Acts 220 a-c. The Act Relationship classes 210a-c relating the source Act 205 to three target Acts 220 a-c are used tocapture the notion of a diagnosis as an observation about observations.In the example, each observation Act (205 and 220 a-c) is associatedwith a set of attributes (attribution) describing its own context ofEntity-Role-Participation values.

The semantics of an attribute are specified through its binding to anHL7 v3 data type. As is well known to those skilled in the art, a datatype is used to represent the semantics (meaning) associated with apiece of data as well as the kinds of operations that may be performedusing the piece of data. A data type may be a simple (atomic) data type(e.g., integer, floating point, character, and string), or it may be acomplex data type (e.g., date, time, and address). HL7 v3 specifies aset of simple and complex data types that represent healthcare concepts(e.g., data types representing physical quantity, time intervals, andevents).

The HL7 v3 data type specification includes a set of concept descriptor(coded) data types. A coded data type may be used to represent any kindof concept, usually by giving a code defined in a code system associatedwith a particular vocabulary domain (“terminology”). The semantics of acoded data type may be expanded or modified by its binding to aparticular code or data value associated with a terminology. Aterminology may be a healthcare industry-standard terminology (e.g.,SNOMED-CT, LOINC, ICD-9, and CPT), an HL7 standard code set, or a customterminology that is defined by a particular healthcare institution. Acoded data type can contain a set of features which may include, forexample, the original text or phrase that served as the basis of thecoding, and one or more translations into different coding systems. HL7v3 coded data types and their associated meanings are summarized inTable 1.

TABLE 1 HL7 v3 coded data types and their associated meanings HL7 CodedData Type Meaning CD Concept Descriptor - Basic coded data type that maycontain all features including coding exceptions, text, translations,and qualifiers. CS Coded Simple Value - Coded data in its simplest form,where only the code is not predetermined. The code system and codesystem version are fixed by the context in which the CS value occurs. CSis used for coded attributes that have a single HL7- defined value set.CV Coded Value - Coded data, specifying only a code, code system, andoptionally display name and original text. Used only as the data typefor other data types' properties. CE Coded with Equivalents - Coded datathat consists of a coded value (CV) and, optionally, coded value(s) fromother coding systems that identify the same concept. Used whenalternative codes may exist.

The semantics represented by domain-specific terms within at least oneterminology may form a terminology model, which is separate from butrelated to the semantics represented by the common information model(RIM). HL7 v3 provides a methodology for binding the terminology andinformation models by binding RIM structures and domain-specific terms.For example, attributes associated with RIM Acts may be bound to codeddata types with values represented by healthcare industry-standard codesystems such as SNOMED-CT.

Since the HL7 v3 standard is well known in the art, discussion offurther details of the HL7 v3 standard is omitted here.

2. Healthcare Transaction Framework

FIG. 3 depicts an exemplary healthcare transaction 300 according tovarious embodiments of the invention. Implemented within a healthcareinstitution's IT infrastructure, a healthcare transaction framework 300may provide the foundation for information sharing between healthcareproviders, insurers, pharmaceutical companies, and clinical researchinstitutions.

In various embodiments, a healthcare transaction framework 300 supportsan HL7 v3 RIM enterprise data model 315. Medical information isrepresented as RIM data structures, and is stored persistently asstructured records in a data repository 350, such as a data warehouse.In embodiments, the data repository 350 comprises one or more relationaldatabases and the stored structured records may be accessed via a SQL308 query.

In embodiments, a healthcare transaction framework 300 deployed at ahealthcare institution may enable HL7 v3-compliant 302 aggregation ofinformation in the data repository 350. This information may be derivedfrom a set of disparate medical data sources comprising a set ofinternal data sources, such as a clinical data repository 310 within thehealthcare institution's IT infrastructure, and a set of external datasources (320 a through 320 x) such as hospitals, primary care providers,social services agencies, insurance providers, pharmacies, andindependent consultants. In embodiments, a healthcare transactionframework 300 may provide programmatic and/or web-based access to thedata repository 350 via enterprise Java (J2EE) 304 applicationprogramming interfaces (APIs). These APIs enable the integration ofhealthcare applications 330 (e.g., display of an integrated view ofpatient clinical results, computerized physician order entry, andcreating, viewing, tracking, and processing simple or complex clinicaldocuments) and business intelligence services 340 (e.g., analysis andreporting of clinical and administrative measures and analysis andreporting of key claims-based financial measures) via IT applicationssuch as a portal.

In embodiments, a healthcare transaction framework 300 comprises a setof core services 305 that may comprise message management, security andauditing, person services, configuration, workflow integration, and aterminology service 305 a. In embodiments, a terminology service 305 amanages the set of terminologies supported by an implementation of thehealthcare transaction framework 300. As previously described,terminologies are concept-based, and the set of supported terminologiesmay include HL7 terminologies, industry standard terminologies (such asSNOMED-CT and ICD-9), and custom terminologies defined within thehealthcare transaction framework 300 implementation. As previouslydescribed, each terminology is associated with a code system and, inembodiments, each code may be assigned a unique identifier. Inembodiments, a terminology service 305 a may maintain a code repositoryof all of the managed codes. There may be overlaps among the vocabularydomains represented by the managed codes, and, in embodiments, aterminology service 305 a code repository may include mappingdefinitions that represent inter-terminology and intra-terminologysemantic relationships. In embodiments, a terminology service mayinclude an intra-terminology version management system. In embodiments,the terminology service 305 a maintains semantic mapping and versioncontrol definitions of the codes in the code repository.

B. A Concept-Based RIM Query Service

In embodiments, a healthcare transaction framework 300 may provide a RIMquery service API to enable applications 330 and/or businessintelligence services 340 or both to have programmatic access and/orweb-based access to structured records in the data repository 350. Inembodiments, the RIM query service API may be a set of Java interfaces304.

FIG. 4 depicts an exemplary RIM query service 400 according to variousembodiments of the invention. A query request 404 received at a RIMquery service API 410 may comprise a set of search criteria (e.g., a setof attributes). In embodiments, a RIM query processor 420 uses the setof search criteria to generate a SQL RIM query 424 having at least someof the search criteria as parameters in the query predicates. The SQLRIM query 424 is submitted to a RIM data store 430 which, inembodiments, may contain aggregated healthcare information stored asstructured records 350. In embodiments, the RIM query 424 may be used toextract a RIM structured record set 428 specified by the set of searchcriteria. In embodiments, a query result 408 comprising the RIM recordset 428 may be returned to a requester via the RIM query service API410.

In embodiments, a query request 404 typically may result in a generatedSQL RIM query 424 with a direct equality predicate that compares asearch criterion attribute value to a value within a structured recordto determine if they are equal. In embodiments, the set of searchcriteria attributes supplied in the query request 404 may comprise codedattributes (e.g., HL7 v3 attributes with CD, CE, CS, and CV data typesas listed in Table 1). The processing of a SQL RIM query 424 having adirect equality predicate containing a coded attribute value may notreturn the expected query result. Due to overlaps among the vocabularydomains represented by the set of codes within a code repository,determination of the value of a coded data type may depend on mappingdefinitions managed by the terminology service 305 a. For instance,various stored values of a coded attribute may have been encoded usingbroader codes or narrower codes than the code of the search criterionvalue, or may have been encoded using equivalent codes from the same ordifferent code systems as the code of the search criterion value.

In embodiments, a RIM query service 400 may leverage the terminologyservice 305 a in order to handle an input query request 404 thatspecifies concept-based semantics and comprises coded search criteria (a“concept query request”). Examples of concept-based semantics that maybe specified in a concept query request include the retrieval of allconcepts that are equivalent to a given concept, and the retrieval ofall concepts that comprise a classification.

FIG. 5 depicts a RIM query service 400 comprising a concept query system500 to provide support for handling RIM concept query requests accordingto various embodiments of the invention. A concept query request 504 mayspecify concept-based semantics, and may comprise a set of coded searchcriteria. In embodiments, the specified concept-based semantics and setof coded search criteria may be received by a concept query generator510 and used to configure a concept query 514. In embodiments, a conceptquery result generator 520 submits the concept query 514 to aterminology service 305 a in order to extract a set of concepts 518 thatare associated with the set of coded search criteria. The set ofconcepts 518 is constructed dynamically by the terminology service 305 abased on its current terminology model definitions. In embodiments,concept query result generator 520 constructs a concept query result 524based on the retrieved set of concepts 518.

In embodiments, a RIM query processor 420 constructs a RIM querydefinition comprising predicates based on the set of concepts 518comprising the concept query result 524. In embodiments, the RIM queryprocessor 420 may use the RIM query definition to generate a RIM SQLquery 424 to retrieve a structured RIM record set 428 stored within aRIM data store 430. In embodiments, a query result 408 comprising theRIM record set 428 may be returned via the RIM query service API 410.

1. Concept-Based Query Using Equivalence

Concept equivalence is the unification of semantically redundant contentin a terminology repository. In embodiments, two concepts belonging tothe same coding scheme have semantic equivalence if they have identicalmeanings. In embodiments, concepts from different coding schemes, orconcepts from different versions of the same coding scheme, aresemantically equivalent if they are determined to have mappingequivalence (i.e., they are determined to have explicit cross mapequivalences based upon map sets defined within the terminologyrepository).

In an exemplary scenario, a direct equality RIM query 424 to retrievefrom the RIM data store 430 the data records representing all encounterswhere the admitting diagnosis is “hypertension” may evaluate the valuecoded attribute for a RIM Observation (OBS) 140 representing anadmission diagnosis in order to select the instances where the valuecoded attribute was equal to “hypertension.” Over time, instances of RIMOBS in the RIM data store 430 representing the diagnosis of“hypertension” may have come to have the value coded attribute bound toconcepts from different versions of a coding scheme, or bound toconcepts from different coding schemes (e.g., “high blood pressure,”“blood pressure with systolic value greater than X”). In this case, aRIM query 424 to extract diagnoses with the value coded attributedirectly equal to “hypertension” may not result in the extraction of allof the relevant admission diagnoses. In order to find all equivalentinstances of “hypertension” diagnoses, an application programmer or enduser would need to look up and identify the terminology conceptequivalences to “hypertension” that have been defined within the system,and then explicitly structure a query request 404 to generate a RIMquery 424 that contains a simple equality predicate for each of theidentified concepts. Building a RIM query from explicitly identifiedconcepts in this way is time consuming and is likely to produce invalidor incomplete results due to concept identification errors. In addition,each generated RIM query 424 represents concepts that are identifiedbased on a snapshot of the current set of equivalence definitions, andthose definitions may change over time. To insure that a generated RIMquery 424 reflects the current equivalence definitions, a new queryrequest 404 specifying a current set of identified concepts would haveto be constructed for each access of the RIM data store 430.

FIG. 5 depicts a RIM query service 400 comprising a concept query system500 to provide support for code equivalences in RIM concept queryrequests according to various embodiments of the invention. Inembodiments, an equivalence concept query request 504 specifiesequivalence semantics and comprises a set of equivalence criteria whichincludes at least one concept (a seed concept). The set of equivalencecriteria need only identify any single seed concept within a set ofequivalent concepts in order to retrieve the full set of equivalentconcepts 518. In the previously described scenario, “hypertension” wouldbe the seed concept supplied in the concept query request 504. Inembodiments, the concept query system 500 leverages the terminologyservice 305 a to retrieve the set of concepts 518 that are equivalent tothe seed concept based on the current terminology contents equivalencedefinition.

In embodiments, the set of equivalence criteria supplied in the conceptquery request 504 may further comprise an “equivalence type” that isused to specify the kind of equivalence definition to be applied by theterminology service 305 a in retrieving the set of equivalent concepts.For example, in embodiments, equivalence type may specify equivalencedefinitions such as the application of semantic equivalence betweenconcepts in the same coding scheme, or the application of a mappingequivalence (cross map) between concepts in different coding schemes.

In embodiments, the set of equivalence criteria may further comprise aspecification of the bounds of the equivalence definition domain to beapplied in retrieving the set of equivalent concepts 518. For example,an equivalence definition domain boundary may be defined to be within asingle code system, or it may be defined to span across multiple codesystems. Additionally, in embodiments, an equivalence definitionboundary may place a limit on the number of equivalence mappings thatcan be traversed to find equivalent concepts.

In embodiments, specification of an equivalence definition domainboundary may further comprise specifying an equivalence context (usagecontext) that restricts equivalences to those that are interesting orappropriate in the context of one process but not in other processes.For example, a billing department may simplify their processing byidentifying many variants of a disease as “equivalent,” while clinicalresearchers may be interested in the fine clinical details of caseswhich would not be discriminated in a query using the billingdepartment's context. In embodiments, each group would be able tospecify an equivalence context that represents its equivalence mappingrequirements. In another example, to generate a report showing the highlevel breakdown of causes of death, a new equivalence context MORBIDITYmay be created, resulting in a set of equivalence maps that would allowmany diseases that are not normally equivalent to be made equivalent inthe context of morbidity.

FIGS. 6, 7, and 8 depict exemplary scenarios (for illustration and notlimitation) of three types of equivalence mapping that may be definedwithin a code repository maintained by a terminology service 305 aaccording to various embodiments of the invention.

FIG. 6 illustrates an example of intra-version equivalence 600 a-c forcodes representing the same concept within the same terminology (codesystem), which is a custom coding scheme in this example, according tovarious embodiments of the invention. In embodiments, a concept queryrequest 504 specifying semantic equivalence and the seed code“26704—Dyspnea” results in a concept query result 524 containing theequivalent codes Breathless, SOB, Dyspnea, and Breathlessness. A RIMquery 424 generated from that concept query result 524 can be used toextract records 428 from the RIM data store 430 of all of the patientsreporting with Breathless, SOB, Dyspnea, and Breathlessness.

FIG. 7 illustrates an example of inter-version equivalence within thesame terminology (code system), a custom coding scheme in this example,according to various embodiments of the invention. In this example, ahospital uses a custom coding scheme to capture the symptoms provided bythe patients relating to the respiratory system. In version 2.0 of thecustom coding scheme, it was decided that “26702—Breathless” would beretired and that an inter-version equivalence 700 would be createdbetween version 1.0 “26702—Breathless” and version 2.0“26703—Breathlessness.” In this example, the inter-version equivalence700 is a mapping equivalence (cross map) within the same coding scheme.In embodiments, a concept query request 504 specifying mappingequivalence, an equivalence definition domain boundary that is limitedto a single code system, and the seed code “26704—Dyspnea” should resultin a concept query result 524 containing the equivalent version 2.0codes SOB, Dyspnea, and Breathlessness and the version 1.0 codeBreathless. The RIM query 424 generated from that concept query result524 should be used to extract records 428 from the RIM data store 430 ofall of the patients reporting with SOB, Dyspnea, and Breathlessness, andalso pick up old records of patients reporting with Breathless.

FIG. 8 illustrates an example of inter-terminology equivalence accordingto various embodiments of the invention. A hospital loads threeterminologies (ICD-9, SNOMED-CT, and a custom coding scheme) into itsterminology service 305 a code repository, and has persistent RIM datarecords 430 that have been acquired from multiple medical sources (320a-x) and represented in all of these terminologies. There is bothintra-terminology (direct) equivalence (600 a-c and 600 d-f) andinter-terminology (mapping) equivalence (800 a and 800 b) defined. Inembodiments, a concept query request 504 specifying mapping equivalence,an equivalence domain boundary that spans across multiple code systems,and the seed code “26704—Dyspnea” should result in a concept queryresult 524 containing all of the equivalent codes for Breathless, SOB,Dyspnea, and Breathlessness that have been defined in the custom codingscheme and SNOMED-CT, as well as the Shortness of Breath code defined inICD-9. The RIM query 424 generated from that concept query result 524should be used to extract records 428 from the RIM data store 430 of allof the patients reporting with Breathless, SOB, Shortness of Breath,Dyspnea, and Breathlessness as represented in all 3 codes.

2. Concept-Based Query Using Classification

In embodiments, the RIM records stored in a data store 350 may befurther organized using higher-order classification concepts (i.e.,concepts not stored in the records themselves) that may be based on avariety of industry-standard and proprietary classification systems.These higher-order classifications may be derived from systematicterminologies (defined by an organized body, such as SNOMED-CT), or theymay be user-defined (e.g., designed to achieve a particular goal withinthe context of the user's system). In embodiments, providers and otherusers of healthcare systems may classify terminology content to enableease of viewing, to facilitate selection of concepts, and to supportclass-based querying of information.

In embodiments, higher-order classifications may be constructed based onthe terminology contents (i.e., concepts described by a set of codesystems) managed by a terminology service 305 a. A classification may bea concept container that is associated with a unique identifier andstored within the terminology contents. All concepts associated with theconcept container have an IS-A association with the container (i.e.,each of the concepts is a specialization of the container). For example,in embodiments, an “antibiotics” classification is a bin of concepts,each of which is classified as an antibiotic. In embodiments, aclassification container itself may have concept characteristics, suchas having multiple equivalent descriptions. In embodiments, the contentsof a classification may be defined declaratively via a concept query.For example, a query “Add concept X and all its descendents toclassification Y” adds to classification Y the concept X and allconcepts that have an IS-A relationship to concept X in its nativeterminology.

In various embodiments, higher-order classifications may be hierarchical(i.e. contain sub-classifications). For example, the “antibiotics”classification may be nested under the “critical drug” classification,with the result that any “antibiotic” also may be considered to be a“critical drug.” In embodiments, containment of a concept at any levelof a constructed hierarchy may be tested via a single concept query. Forexample, the query predicate “classification Y contains (X)” testswhether X is contained in classification Y or in any classificationbelow classification Y at any level of a constructed hierarchy ofclassifications.

In an exemplary scenario, a RIM query request 404 to retrieve allmedication administration events where the ENTITY.CODE is equal to“penicillin” may be submitted. As there are a variety of differentproducts that contain penicillin, a RIM query 424 generated from thequery request 404 that has a direct equality predicate specifying“penicillin” may not result in the retrieval of records from the RIMdata store 430 that are associated with all of the relevant products.However, a concept query request specifying “the class of productscontaining penicillin” would insure that all of the relevant records areretrieved. In another example, patients receiving oral anticoagulantssuch as Warfarin must be regularly monitored to avoid bleeding problems.In a system that manages patient medications, an assigned person must beeither presented with, or be able to, formulate a list of patients thatare being administered this class of anticoagulants so that theappropriate lab orders and notifications can be created. A concept queryrequest specifying “the class of anticoagulants containing Warfarin” mayretrieve all of the relevant medications that lie within this class ofanticoagulants.

Typically, accessing all of the RIM concepts within a higher-orderclassification via a query would require an application programmer orend user to first identify the concepts that belong to theclassification (i.e., explicitly identify all concepts that have an IS-Aassociation with the classification), and then either input a set ofseperate direct equality query requests 404, each specifying a singleidentified concept as a search criterion, or input a single directequality query request 404 that specifies all of the identified conceptsas a set of search criteria. Identifying concepts that belong to aclassification may be time-consuming and could lead to invalid queryresults if identification errors are made. Additionally, since highorder terminology concept definitions of equivalence and classificationmay change over time, a classification concept query request 404 wouldneed to be re-generated each time to insure that the concepts wereidentified based on current terminology definitions. If a classificationquery request 404 contains coded attributes (e.g., HL7 v3 attributeswith CD, CE, CS, and CV data types as listed in Table 1), the attributevalues might require checking of their membership in some largercategory of codes defined within a higher-order classification schemewithin the terminology contents, so a resulting RIM query 424 using onlythe input coded attribute values may not retrieve all of the relevantRIM records associated with the classification.

FIG. 5 depicts a RIM query service 400 comprising a concept query system500 to provide support for class-based RIM query requests according tovarious embodiments of the invention. In embodiments, a user may queryfor a set of concepts contained within a higher-order classification bysubmitting a classification concept query request 504 that comprises anidentifier corresponding to the higher-order classification container.In embodiments, the concept query system 500 leverages the terminologymappings to identify classification-based relationships within theterminology contents managed by a terminology service 305 a. Inembodiments, a set of concepts 518 associated with the classificationidentifier supplied in a concept query request 504 is retrieved.

Turning to the example of intra-version equivalence depicted in FIG. 6,adding any one of the concepts to a “Respiratory System Complaints”classification container would result in each of the concepts beingassociated (i.e. assigned an IS-A relationship) with the classificationcontainer because of the equivalence relationship of the concepts. Inembodiments, a classification concept query request 504 comprising theclassification identifier “Respiratory System Complaints” should resultin a concept query result 524 containing the codes Breathless, SOB,Dyspnea, and Breathlessness. The RIM query 424 generated from thatconcept query result 524 should be used to extract records 428 from theRIM data store 430 of all of the patients reporting with Breathless,SOB, Dyspnea, and Breathlessness.

C. System Implementations

FIG. 9 depicts an embodiment of concept query system 900 for generatinga concept query result 925 based on a set of criteria from a receivedRIM concept query request 905 according to various embodiments of theinvention. In embodiments, the set of criteria may comprise codedattributes. In embodiments, concept query system 900 comprises a conceptquery generator 910 and a concept query result generator 920. Variousembodiments of a RIM query service 400 may comprise an embodiment ofconcept query system 900 for handling a RIM concept query request 504 asillustrated in FIG. 5.

In embodiments, concept query generator 910 receives a RIM concept queryrequest 905 comprising specified concept semantics and a set of searchcriteria (i.e., a set of attributes). In embodiments, the input set ofsearch criteria supplied in the concept query request 905 comprisescoded attributes (e.g., HL7 v3 attributes with CD, CE, CS, and CV datatypes as listed in Table 1). As previously described, an HL7 v3attribute binding to a data type defines a semantic relationship, andthe domain of the code affects the meaning of the record. The RIMbackbone classes each have a set of attributes that take values havingcertain data types, and the meaning of a value is determined by the nameof the attribute with which it is associated In embodiments, aterminology service 305 a comprising a core service within a healthcaretransaction framework 300 may maintain a repository of the managed codes(vocabulary domains) within the framework. There may be overlaps amongthe vocabulary domains, and, in embodiments, the terminology service 305a code repository may include defined mappings between codes thatrepresent inter-code and intra-code semantic relationships, such as theexemplary relationships depicted in FIGS. 6, 7, and 8.

In embodiments, an equivalence concept query request 905 may include aset of search criteria comprising a seed concept, an equivalence type,and equivalence depth. This set of search criteria is received by aconcept query generator 910. In embodiments, the concept query generator910 may use the set of search criteria to configure an equivalenceconcept query 514 comprising the seed concept.

In embodiments, a classification concept query request 905 may comprisea class identifier associated with a higher-order classificationcontainer defined within the terminology content managed by theterminology service 305 a. In embodiments, the concept query system 500leverages defined terminology concept mappings to identify class-basedrelationships within the terminology content. In embodiments, theconcept query generator 910 may configure a classification concept query514 comprising the received class identifier.

In embodiments, concept query result generator 920 receives a conceptquery 514 and submits the concept query 514 to a terminology service 305a in order to extract a set of concepts 518 from terminology contentmanaged by the terminology service 305 a. In embodiments, the set ofconcepts 518 extracted in response to a submitted equivalence conceptquery 518 are a set of equivalent concepts 518 comprising the seedconcept. The set of equivalent concepts 518 is constructed dynamicallyby the terminology service 305 a based on its current equivalencedefinitions. In embodiments, the set of concepts 518 extracted inresponse to a submitted classification concept query 518 are conceptsassociated with a higher-order classification container having thespecified class identifier. The set of associated concepts 518 isconstructed dynamically by the terminology service 305 a based on thecurrent classification-based relationship mappings within its managedterminology content.

In embodiments, a concept query result generator 920 constructs aconcept query result 925 based on the retrieved set of associatedconcepts 518. In embodiments, a SQL RIM query 424 comprising predicatesbased on the concept query result 925 may be generated by a RIM queryprocessor 420.

D. Method Implementations

The following sections describe embodiments of methods for receiving aconcept query request and generating a structured database query inresponse according to various embodiments of the invention. The methodembodiments may be implemented in embodiments of concept query system900.

1. Method for Handling an Equivalence Concept Query Request

FIG. 10 depicts a method 1000 for handling an equivalence concept queryrequest according to various embodiments of the invention. Method 1000may be implemented in embodiments of concept query system 900.

As previously described, an equivalence concept query request 504comprises a set of search criteria that are submitted to a terminologyservice 305 a in order to extract a set of concepts 518 that areequivalent to a seed concept. In embodiments, the set of search criteriacomprises coded attributes (e.g., HL7 v3 attributes with CD, CE, CS, andCV data types as listed in Table 1). In embodiments, the terminologymappings in the terminology content managed by the terminology service305 a are leveraged in order to determine an equivalence definition thatis used for retrieving the set of equivalent concepts 518 from theterminology content.

In embodiments, the set of search criteria supplied in a received 1005equivalence concept query request 504 comprises a seed concept and mayfurther comprise a specification of the bounds of the equivalencedefinition domain to be applied in retrieving the set of equivalentconcepts 518. An equivalence definition domain boundary may be definedto be within a single code system, or it may be defined to span acrossmultiple code systems. For example, in embodiments, the equivalencedefinition domain boundary may be specified by an “equivalence depth”boolean flag. If the flag value is true, all concepts are consideredthat are either directly equivalent to the seed concept (explicitlyasserted to be equivalent through a cross map or a change fileassociated with version control) or transitively equivalent to the seedconcept (inferred to be equivalent by transitively chaining directequivalence assertions). If the flag value is false, only concepts thatare directly equivalent to the seed concept are considered (i.e., do notuse transitive chaining).

In embodiments, specification of an equivalence definition domainboundary may further comprise defining an equivalence context (usagecontext) that restricts equivalences that are interesting or appropriatein the context of one process but not in other processes. For example,in embodiments, a default usage context may be SYSTEM (i.e., use allmappings defined within a code repository), and the default value may beoverridden by the specification of a defined usage context.

In embodiments, the set of equivalence criteria may further comprise an“equivalence type” that is used to specify the kind of equivalencedefinition to be applied. In embodiments, equivalence type may berepresented as an enumerated constant (enum) having values such as (forillustration and not limitation) EQUIVALENCE_TYPE_SEMANTIC (applysemantic equivalence between concepts in the same coding scheme); andEQUIVALENCE_TYPE_MAPPING (apply a mapping (cross map) between conceptsin different coding schemes as well as semantic equivalence betweenconcepts in the same coding scheme).

In embodiments, if a received concept query request 1005 specifiesconcept equivalence 1010 and comprises a seed concept, then anequivalence concept query 514 comprising the seed concept is generated1015 and submitted 1020 to a terminology service 305 a.

In embodiments, a query result comprising a set of equivalent concepts518 comprising the seed concept is received 1025 from the terminologyservice 305 a. Turning to the exemplary intra-terminology equivalence(600 a-c) definition illustrated in FIG. 6, a concept query 514specifying semantic equivalence and the seed code “26704—Dyspnea” shouldreturn a set of directly equivalent concepts 518 containing the codesfor Breathless, SOB, Dyspnea, and Breathlessness. Turning to theexemplary FIG. 8 equivalence definition exhibiting intra-terminologyequivalence (600 a-c and 600 d-f) and inter-terminology equivalence (800a and 800 b), a concept query 514 specifying mapping equivalence, anequivalence domain boundary indicating both direct and transitivesemantic equivalence, and the seed code “26704—Dyspnea” should return aconcept query result 524 containing all of the illustrated symptomcodes. In the example, “Shortness of breath” in ICD-9 is directlyequivalent to “SOB—Shortness of breath” in SNOMED-CT via cross map 800b, and it is transitively equivalent to “Breathless” SNOMED-CT.

In embodiments, a structured database query (e.g., a SQL RIM query 424)that comprises predicates associated with the retrieved set ofequivalent concepts 518 may be generated 1030. In various embodiments, aconcept query result 524 generated from the retrieved set of equivalentconcepts 518 is provided to a structured database query processor 420within a query service 400. In embodiments, the structured databasequery processor 420 may use the concept query result 524 to generate astructured database query 424 in order to extract a data record set 428from a data repository 430.

In embodiments, if the received concept query request does not denotethe application of semantic equivalence concept mapping 1010, then noequivalence concept query 514 is generated. For example, in embodiments,no application of semantic equivalence concept mapping may be denoted ina concept query by its associated search criteria comprising anequivalence type enum having a value of EQUIVALENCE_TYPE_EXACT_CONCEPT.In this case, no concept-based semantic processing is applied to theseed concept, and the generated 1035 structured database query 424 maycomprise a direct equality predicate applied to the seed concept.

2. Method for Handling a Classification Concept Query Request

FIG. 11 depicts a method 1100 for handling a classification conceptquery request according to various embodiments of the invention. Method1100 may be implemented in embodiments of concept query system 900.

In embodiments, if a received concept query request 1105 specifies a setof concepts contained within a higher-order classification, then aclassification concept query 514 comprising an identifier correspondingto a higher-order classification container is generated 1110 andsubmitted 1115 to a terminology service 305 a. In embodiments, theclassification identifier and/or the set of associated concepts may berepresented by coded attributes (e.g., HL7 v3 attributes with CD, CE,CS, and CV data types as listed in Table 1). In embodiments, theterminology service 305 a leverages terminology mappings to identifyclassification-based relationships within the terminology content.

In embodiments, a query result comprising a set of associated concepts518 having an IS-A relationship to the higher-order classification isreceived 1120 from the terminology service 305 a. As previouslydescribed, higher-order classifications may be hierarchical, andcontainment of a concept at any level of a constructed hierarchy may betested via a single concept query.

Turning to the example of intra-version equivalence depicted in FIG. 6,each of the entries additionally may have been defined to have an IS-Arelationship to a “Respiratory System Complaints” classificationcontainer. In embodiments, a classification concept query request 514comprising the classification identifier “Respiratory System Complaints”would return a concept set 518 containing the codes for Breathless, SOB,Dyspnea, and Breathlessness.

In embodiments, a structured database query (e.g., a SQL RIM query 424)that comprises predicates associated with a concept set 518 may begenerated 1125. In various embodiments, a concept query result 524comprising the concept set 518 is provided to a structured databasequery processor 420 within a query service 400. In embodiments, thestructured database query processor 420 may use the concept query result524 to generate a structured database query 424 in order to extract adata record set 428 from a data repository 430.

E. Computing System Implementations

It shall be noted that the present invention may be implemented in anyinstruction-execution/computing device or system capable of processingdata. The present invention may also be implemented into other computingdevices and systems. Furthermore, aspects of the present invention maybe implemented in a wide variety of ways including software, hardware,firmware, or combinations thereof. For example, the functions topractice various aspects of the present invention may be performed bycomponents that are implemented in a wide variety of ways includingdiscrete logic components, one or more application specific integratedcircuits (ASICs), and/or program-controlled processors. It shall benoted that the manner in which these items are implemented is notcritical to the present invention.

FIG. 12 depicts a functional block diagram of an embodiment of aninstruction-execution/computing device 1200 that may implement or embodyembodiments of the present invention. As illustrated in FIG. 12, aprocessor 1202 executes software instructions and interacts with othersystem components. In an embodiment, processor 1202 may be a generalpurpose processor such as (by way of example and not limitation) an AMDprocessor, an INTEL processor, a SUN MICROSYSTEMS processor, or aPOWERPC compatible-CPU, or the processor may be an application specificprocessor or processors. A storage device 1204, coupled to processor1202, provides long-term storage of data and software programs. Storagedevice 1204 may be a hard disk drive and/or another device capable ofstoring data, such as a magnetic or optical media (e.g., diskettes,tapes, compact disk, DVD, and the like) drive or a solid-state memorydevice. Storage device 1204 may hold programs, instructions, and/or datafor use with processor 1202. In an embodiment, programs or instructionsstored on or loaded from storage device 1204 may be loaded into memory1206 and executed by processor 1202. In an embodiment, storage device1204 holds programs or instructions for implementing an operating systemon processor 1202. In one embodiment, possible operating systemsinclude, but are not limited to, UNIX, AIX, LINUX, Microsoft Windows,and the Apple MAC OS. In embodiments, the operating system executes on,and controls the operation of, the computing system 1200.

An addressable memory 1206, coupled to processor 1202, may be used tostore data and software instructions to be executed by processor 1202.Memory 1206 may be, for example, firmware, read only memory (ROM), flashmemory, non-volatile random access memory (NVRAM), random access memory(RAM), or any combination thereof. In one embodiment, memory 1206 storesa number of software objects, otherwise known as services, utilities,components, or modules. One skilled in the art will also recognize thatstorage 1204 and memory 1206 may be the same items and function in bothcapacities. In an embodiment, one or more of the components of FIGS. 4,5, and 9 may be modules stored in memory 1204, 1206 and executed byprocessor 1202.

In an embodiment, computing system 1200 provides the ability tocommunicate with other devices, other networks, or both. Computingsystem 1200 may include one or more network interfaces or adapters 1212,1214 to communicatively couple computing system 1200 to other networksand devices. For example, computing system 1200 may include a networkinterface 1212, a communications port 1214, or both, each of which arecommunicatively coupled to processor 1202, and which may be used tocouple computing system 1200 to other computer systems, networks, anddevices.

In an embodiment, computing system 1200 may include one or more outputdevices 1208, coupled to processor 1202, to facilitate displayinggraphics and text. Output devices 1208 may include, but are not limitedto, a display, LCD screen, CRT monitor, printer, touch screen, or otherdevice for displaying information. Computing system 1200 may alsoinclude a graphics adapter (not shown) to assist in displayinginformation or images on output device 1208.

One or more input devices 1210, coupled to processor 1202, may be usedto facilitate user input. Input device 1210 may include, but are notlimited to, a pointing device, such as a mouse, trackball, or touchpad,and may also include a keyboard or keypad to input data or instructionsinto computing system 1200.

In an embodiment, computing system 1200 may receive input, whetherthrough communications port 1214, network interface 1212, stored data inmemory 1204/1206, or through an input device 1210, from a scanner,copier, facsimile machine, or other computing device.

In embodiments, computing system 1200 may include one or more databases,some of which may store data used and/or generated by programs orapplications. In embodiments, one or more databases may be located onone or more storage devices 1204 resident within a computing system1200. In alternate embodiments, one or more databases may be remote(i.e. not local to the computing system 1200) and share a network 1216connection with the computing system 1200 via its network interface1214. In various embodiments, a database may be a relational database,such as an Oracle database, that is adapted to store, update, andretrieve data in response to SQL-formatted commands.

One skilled in the art will recognize no computing system is critical tothe practice of the present invention. One skilled in the art will alsorecognize that a number of the elements described above may bephysically and/or functionally separated into sub-modules or combinedtogether.

It shall be noted that embodiments of the present invention may furtherrelate to computer products with a computer-readable medium that havecomputer code thereon for performing various computer-implementedoperations. The media and computer code may be those specially designedand constructed for the purposes of the present invention, or they maybe of the kind known or available to those having skill in the relevantarts. Examples of computer-readable media include, but are not limitedto: magnetic media such as hard disks, floppy disks, and magnetic tape;optical media such as CD-ROMs and holographic devices; magneto-opticalmedia; and hardware devices that are specially configured to store or tostore and execute program code, such as application specific integratedcircuits (ASICs), programmable logic devices (PLDs), flash memorydevices, and ROM and RAM devices. Examples of computer code includemachine code, such as produced by a compiler, and files containinghigher level code that are executed by a computer using an interpreter.Embodiments of the present invention may be implemented in whole or inpart as machine-executable instructions that may be in program modulesthat are executed by a computer. Examples of program modules includelibraries, programs, routines, objects, components, and data structures.In distributed computing environments, program modules may be physicallylocated in settings that are local, remote, or both.

While the invention is susceptible to various modifications andalternative forms, specific examples thereof have been shown in thedrawings and are herein described in detail. It should be understood,however, that the invention is not to be limited to the particular formsdisclosed, but to the contrary, the invention is to cover allmodifications, equivalents, and alternatives falling within the scope ofthe appended claims.

What is claimed is:
 1. A computer program product comprising at leastone non-transitory computer-readable storage medium storing one or moresequences of instructions, wherein execution of the one or moresequences of instructions by one or more hardware processors causes theone or more hardware processors to perform the steps comprising:providing a repository of terminology content stored in accordance witha reference information model, wherein the reference information modelincludes a plurality of backbone classes, wherein the plurality ofbackbone classes are associated with a plurality of other types ofbackbone classes to form data structures representing a plurality ofhigher level healthcare concepts; receiving a concept query requestspecifying a set of search criteria, wherein the search criteria includea first classification identifier corresponding to a firstclassification container, and a semantic statement that defines, usingthe first classification identifier, an expected concept query resultgenerated from a terminology service; generating, via a concept querygenerator, a classification concept query from the concept queryrequest, wherein the classification concept query includes at least asubset of the search criteria that includes the first classificationidentifier; providing the classification concept query to theterminology service which manages the repository of terminology content,wherein the terminology content comprises a plurality of domains ofconcepts, wherein a plurality of semantically equivalent concepts arestored in one or more of said domains of concepts, and mapped to oneanother using inter-domain or intra-domain mappings defined in theterminology content, and wherein concepts in each domain are organizedinto a plurality of classification containers, wherein eachclassification container represents a collection of semanticallyequivalent concepts having a corresponding classification identifier;identifying, using the defined mappings and the semantic statement, oneor more classification containers, wherein each of the one or moreclassification containers includes a concept semantically equivalent toa concept in the first classification container; creating a conceptquery result by extracting a plurality of concepts associated with thefirst classification identifier, from the first classification containerand the one or more identified classification containers; andgenerating, from the concept query result, a modified query thatincludes predicates corresponding to the plurality of associatedconcepts, to retrieve a set of stored data records from an electronicdata record system.
 2. The computer program product of claim 1, whereinthe plurality of associated concepts have an IS-A relationship with theclassification container.
 3. The computer program product of claim 1,wherein the classification container comprises a first classificationcontainer and a plurality of classification containers having an IS-Arelationship to the first classification container.
 4. The computerprogram product of claim 1, wherein the terminology content comprisesstored concepts that are associated with at least one terminology. 5.The computer program product of claim 1, wherein the subset of searchcriteria comprises at least one attribute having a coded data type. 6.The computer program product of claim 1, wherein the classificationcontainer is associated with a set of attributes described in part by atleast one terminology code, and wherein each concept within theclassification container is identified based in part on the at least oneterminology code.
 7. The method of claim 1, wherein the plurality ofassociated concepts have an IS-A relationship with the classificationcontainer.
 8. A system to generate a database query to retrieve a set ofstored data records from an electronic data record system, the systemcomprising: a computer that includes one or more hardware processors; arepository of terminology content stored in accordance with a referenceinformation model, wherein the reference information model includes aplurality of backbone classes, wherein the plurality of backbone classesare associated with a plurality of other types of backbone classes toform data structures representing a plurality of higher level healthcareconcepts; a concept query system that executes on the computer toreceive a concept query request comprising a set of search criteria,wherein the search criteria include a first classification identifiercorresponding to a first classification container, and a semanticstatement that defines, using the first classification identifier, anexpected concept query result generated from a terminology service;generate, via a concept query generator, a classification concept queryfrom the concept query request, wherein the classification concept queryincludes at least a subset of the search criteria and the firstclassification identifier, provide the classification concept query tothe terminology service that manages the repository of terminologycontent, wherein the terminology content comprises a plurality ofdomains of concepts, wherein a plurality of semantically equivalentconcepts are stored in different domains of concepts, and are mapped toone another using inter-domain or intra-domain mappings defined in theterminology service, and wherein concepts in each domain are organizedinto a plurality of classification containers, wherein eachclassification container represents a collection of semanticallyequivalent concepts having a corresponding classification identifier,identify, using the defined mappings and the semantic statement, one ormore classification containers, wherein each of the one or moreclassification containers includes a concept semantically equivalent toa concept in the first classification container; and create a conceptquery result by extracting a plurality of concepts associated with thefirst classification identifier, from the first classification containerand the one or more identified classification containers; and a databasequery generator to receive the plurality of associated concepts andgenerate the database query comprising predicates corresponding to theplurality of associated concepts.
 9. A system to generate a databasequery to retrieve a set of stored data records from an electronic datarecord system, the system comprising: a computer that includes one ormore hardware processors; a repository of terminology content stored inaccordance with an information reference model, wherein the informationreference model includes a plurality of backbone classes, wherein theplurality of backbone classes are associated with a plurality of othertypes of backbone classes to form data structures representing aplurality of higher level healthcare concepts; a concept query systemthat executes on the computer to receive a concept query requestcomprising a set of search criteria, wherein the search criteria includea first classification identifier corresponding to a firstclassification container, and a semantic statement that defines, usingthe first classification identifier, an expected concept query resultgenerated from a terminology service; generate, via a concept querygenerator, a classification concept query from the concept queryrequest, wherein the classification concept query includes at least asubset of the search criteria and the first classification identifier,provide the classification concept query to the terminology service thatmanages the repository of terminology content, wherein the terminologycontent comprises a plurality of domains of concepts, wherein aplurality of semantically equivalent concepts are stored in differentdomains of concepts, and are mapped to one another using inter-domain orintra-domain mappings defined in the terminology service, and whereinconcepts in each domain are organized into a plurality of classificationcontainers, wherein each classification container represents acollection of semantically equivalent concepts having a correspondingclassification identifier, identify, using the defined mappings and thesemantic statement, one or more classification containers, wherein eachof the one or more classification containers includes a conceptsemantically equivalent to a concept in the first classificationcontainer; and create a concept query result by extracting a pluralityof concepts associated with the first classification identifier, fromthe first classification container and the one or more identifiedclassification containers; and a database query generator to receive theplurality of associated concepts and generate the database querycomprising predicates corresponding to the plurality of associatedconcepts.
 10. The system of claim 9, further comprising a database queryservice application programming interface (API) that receives theplurality of associated concepts and returns a database query resultcomprising the retrieved set of stored data records.
 11. The system ofclaim 9, wherein the associated concepts have an IS-A relationship withthe classification container associated with the classificationidentifier.
 12. The system of claim 9, wherein the terminology contentcomprises concepts that are associated with at least one terminology.13. The system of claim 9, wherein the classification container isassociated with a set of attributes described in part by at least oneterminology code, and wherein each concept within the classificationcontainer is identified based in part on the at least one terminologycode.
 14. A computer implemented method for generating a set of storedconcepts for generating a database query for retrieving a set of storeddata records from an electronic data record system, the methodcomprising: providing a repository of terminology content stored inaccordance with a reference information model, wherein the referenceinformation model includes a plurality of backbone classes, wherein theplurality of backbone classes are associated with a plurality of othertypes of backbone classes to form data structures representing aplurality of higher level healthcare concepts; receiving a concept queryrequest specifying a set of search criteria, wherein the search criteriainclude a first classification identifier corresponding to a firstclassification container, and a semantic statement that defines, usingthe first classification identifier, an expected concept query resultgenerated from a terminology service; generating, via a concept querygenerator, a classification concept query from the concept queryrequest, wherein the classification concept query includes at least asubset of the search criteria that includes the first classificationidentifier; providing the classification concept query to theterminology service which manages the repository of terminology content,wherein the terminology content comprises a plurality of domains ofconcepts, wherein a plurality of semantically equivalent concepts arestored in one or more od said domains of concepts mapped to one anotherusing inter-domain or intra-domain mappings defined in the terminologyservice, and wherein concepts in each domain are organized into aplurality of classification containers, wherein each classificationcontainer represents a collection of semantically equivalent conceptshaving a corresponding classification identifier; identifying, using thedefined mappings and the semantic statement, one or more classificationcontainers, wherein each of the one or more classification containersincludes a concept semantically equivalent to a concept in the firstclassification container; creating a concept query result by extractinga plurality of concepts associated with the first classificationidentifier, from the first classification container and the one or moreidentified classification containers; and generating, from the conceptquery result, a modified query that includes predicates corresponding tothe plurality of associated concepts, to retrieve a set of stored datarecords from an electronic data record system; wherein the steps ofreceiving, identifying, and generating are performed by one or morehardware processors.
 15. A computer implemented method for generating aset of stored concepts for generating a database query for retrieving aset of stored data records from an electronic data record system, themethod comprising: providing a repository of terminology content storedin accordance with an information reference model, wherein theinformation reference model includes a plurality of backbone classes,wherein the plurality of backbone classes are associated with aplurality of other types of backbone classes to form data structuresrepresenting a plurality of higher level healthcare concepts; receivinga concept query request specifying a set of search criteria, wherein thesearch criteria include a first classification identifier correspondingto a first classification container, and a semantic statement thatdefines, using the first classification identifier, an expected conceptquery result generated from a terminology service; generating, via aconcept query generator, a classification concept query from the conceptquery request, wherein the classification concept query includes atleast a subset of the search criteria that includes the firstclassification identifier; providing the classification concept query tothe terminology service which manages the repository of terminologycontent, wherein the terminology content comprises a plurality ofdomains of concepts, wherein a plurality of semantically equivalentconcepts are stored in one or more of said domains of concepts, andmapped to one another using inter-domain or intra-domain mappingsdefined in the terminology content, and wherein concepts in each domainare organized into a plurality of classification containers, whereineach classification container represents a collection of semanticallyequivalent concepts having a corresponding classification identifier;identifying, using the defined mappings and the semantic statement, oneor more classification containers, wherein each of the one or moreclassification containers includes a concept semantically equivalent toa concept in the first classification container; creating a conceptquery result by extracting a plurality of concepts associated with thefirst classification identifier, from the first classification containerand the one or more identified classification containers; andgenerating, from the concept query result, a modified query thatincludes predicates corresponding to the plurality of associatedconcepts, to retrieve a set of stored data records from an electronicdata record system; wherein the steps of receiving, identifying, andgenerating are performed by one or more hardware processors.
 16. Themethod of claim 14, wherein the plurality of associated concepts have anIS-A relationship with the classification container.
 17. The method ofclaim 15, wherein the terminology content repository comprises aplurality of terminology codes.
 18. The method of claim 17, wherein theclassification container is associated with a set of attributes that aredescribed in the plurality of terminology codes.
 19. The method of claim17, wherein the classification container is associated with a set ofattributes described in part by at least one terminology code, andwherein each concept within the classification container is identifiedbased in part on the at least one terminology code.
 20. The method of15, wherein the modified query is a SQL query.